package com.itheima.d10_api_object;

import com.itheima.d10_api_object.bean.Student;

/*
    Object的toString，equals方法使用

    toString方法是将对象变成字符串形式：
    toString在Object中源码：
    public String toString(){
    return getClass().getName + "@" + Integer.toHexString(hashCode());
    }
    一般，我们定义一个JavaBean时，都会重写toString，以便打印对象时可以看到对象的内容

    equals方法是用来比较两个对象是否相同:
    Object源码：   直接两个对象 == 比较是否相同
    public boolean equals(Object obj) {
        return (this == obj);
    }
    我们认为，只要两个对象其类型相同，其内部的属性值也相同，就认为两个对象是相同的。子类需要重写
 */
public class Test1 {
    public static void main(String[] args) {
        // 目标：掌握Object类提供的常用方法。

        Student s1 = new Student();
        //默认会调用toString
        System.out.println("s1 = " + s1); //s1 = com.itheima.d10_api_object.bean.Student@7a81197d ---> 打印地址没有太大的意义，我们期望看到对象的内容
        System.out.println("s1 = " + s1.toString());
        //当打印一个对象或者将对象与字符串进行拼接的时候，会自动调用对象的toString方法，返回字符串来进行打印，或者拼接


        Student s2 = new Student("兮", 18);
        Student s3 = new Student("兮", 18);
        System.out.println(s2 == s3); //false ---> 地址值不同   ==比较的是地址
        boolean equals = s2.equals(s3);
        System.out.println("equals = " + equals); //重写equals前，结果为false   重写equals后，结果为true
    }
}












